package tec;

class TestPassagerStandard 
    extends TestPassagerAbstrait {
    
    
    void lancerTestPassagerStandard() {

	int nbTest = 8;
	super.lancerTestPassagerAbstrait();
	
	testChoixChangerPlace();
	System.out.print('.');nbTest++;

	testChoixPlaceMontee();
	System.out.print('.');nbTest++;

	
	System.out.println("(" + nbTest + "):OK: " + getClass().getName()); 
    }
    
   
    void testChoixChangerPlace(){
	
	Passager p1 = new PassagerStandard("Marc", 5);
	FauxBus bus = new FauxBus();
	bus.status = FauxBus.ASSISDEBOUT; //Pas d'importance
	
	p1.accepterPlaceAssise();
	p1.nouvelArret(bus, 3);
	assert 0 == bus.messages.size() : "Rien ne se passe";
    }

    void testChoixPlaceMontee(){
	
	Passager passager1 = new PassagerStandard("Marc", 5);
	FauxBus busDebout = new FauxBus();
	busDebout.status = FauxBus.DEBOUT;
	passager1.monterDans(busDebout);
	assert "demanderPlaceDebout" == busDebout.messages.getLast() : "bus DEBOUT";

	Passager passager2 = new PassagerStandard("Marc", 5);
	FauxBus busAssisDebout = new FauxBus();
	busAssisDebout.status = FauxBus.ASSISDEBOUT;
	passager2.monterDans(busAssisDebout);
	assert "demanderPlaceAssise" == busAssisDebout.messages.getLast() : "bus ASSISDEBOUT";

	Passager passager3 = new PassagerStandard("Marc", 5);
	FauxBus busAssis = new FauxBus();
	busAssis.status = FauxBus.ASSIS;
	passager3.monterDans(busAssis);
	assert "demanderPlaceAssise" == busAssis.messages.getLast() : "bus ASSIS";

	Passager passager4 = new PassagerStandard("Marc", 5);
	FauxBus busPlein = new FauxBus();
	busPlein.status = FauxBus.PLEIN;
	passager4.monterDans(busPlein);
	
	assert 2 == busPlein.messages.size() : "bus PLEIN";//Il ne monte pas
    }

    public PassagerAbstrait creerPassager(String nom, int destination){
	PassagerAbstrait passager = new PassagerStandard(nom, destination);
	return passager;
    }
}